{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第一次习题\n",
    "## 第一章\n",
    "\n",
    "###  一、多选题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1.下面```(   )```选项是正确的```Pyhon```标准库对象导入语句。\n",
    "```\n",
    "A. import math.sin as sin\n",
    "B. from math import sin\n",
    "C. import math.*\n",
    "D. from math import *\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "B D"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.下面开发环境可以用来编写和调试```Python```程序的有```(   )```。\n",
    "```\n",
    "A. IDLE\n",
    "B. Jupyter Notebook\n",
    "C. Spyder\n",
    "D. PyCharm\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A B C D"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3.下面说法正确的选项有```(   )```。\n",
    "```\n",
    "A.正确的缩进对Python程序是非常重要的\n",
    "B.在表达式中圆括号可以改变运算顺序\n",
    "C.在Python 3.x中可以使用中文做变量名\n",
    "D. Pyhon程序中的空格和空行可有可无，但是适当的增加空格和空行可以提高代码的可读性\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A B C "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 二、判断题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```\n",
    "1.缩进对于Python代码至关重要。(    )\n",
    "2.为了让代码更加紧凑，减少占用空间，不应该在代码中任何位置增加空格和空行。(    )\n",
    "3.在Python 3x中不能使用汉字作为变量名。(    )\n",
    "4.对于复杂表达式，如果计算结果是正确的，那么不建议再增加圆括号来说明计算顺序，样可以使得代码更加简洁、清晰。(    )\n",
    "5.在编写代码时，一般应先导入标准库对象，再导入扩展库对象。(    )\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1.True"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.False"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3.False"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4.False"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "5.True"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 三、操作题\n",
    "```\n",
    "1.下载并安装Python官方安装包和Anaconda3.\n",
    "2.使用Jupyter Notebook或Spyder运行并体会本章中的代码。\n",
    "3.安装扩展库numpy、pandas、 matplotlib、 openpyxl、 python-do\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第二章"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 一、填空题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```\n",
    "1.表达式-68//7的值为_______。\n",
    "2.表达式{40,50,60}|{40,60,70}的值为_______。\n",
    "3.表达式{40,50,60}&{40,60,70}的值为_______。\n",
    "4.表达式{40, 50, 60}-{40, 60, 70}的值为_______。\n",
    "5.表达式chr(ord('0')+3)的值为_______。\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "-10"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "{40, 50, 60, 70}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "{40, 60}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "{50}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "'3'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 二、判断题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```\n",
    "l.表达式3>5 and math.sin(0)的值为0。(   )\n",
    "2.表达式4<5==5的值为True。(   )\n",
    "3.在Python 3.x中，内置函数input()用来接收用户的键盘输入,不管输入什么,都以字符串的形式返回。(   )\n",
    "4.在Python 3.x中，reduce()是内置函数，可以直接使用。(   )\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1.False"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.True"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3.True"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4.False"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 三、编程题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "```\n",
    "1.输入一个包含若干自然数的列表，输出这些自然数的平均值，结果保留3位小数。\n",
    "2.输入一个包含若干自然数的列表，输出这些自然数降序排列后的新列表。\n",
    "3.输入一个包含若干自然数的列表，输出一个新列表，新列表中每个元素为原列表中每个自然数的位数。例如，输入[1, 888, 99, 23456]，输出[1,3,2, 5]。\n",
    "4.输入一个包含若干数字的列表，输出其中绝对值最大的数字。例如,输入[-8,64,3.5,89]，输出-89。\n",
    "5.输入一个包含若干整数的列表，输出这些整数的乘积。例如，输入[-2,3,4], 输出-24。\n",
    "6.输入两个包含若干整数的等长列表，把这两个列表看作两个向量，输出这两个向量的内积。\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "7.375\n"
     ]
    }
   ],
   "source": [
    "def fun(a):\n",
    "\n",
    "        return sum(a)/len(a)\n",
    "\n",
    "b=fun([1,3,5,7,9,10,11,13])\n",
    "\n",
    "print(\"{:.3f}\".format(b))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]\n"
     ]
    }
   ],
   "source": [
    "\n",
    "\n",
    "    def jx(li):\n",
    "\n",
    "            li.reverse()\n",
    "\n",
    "            print(li)\n",
    "\n",
    "    jx([1,2,3,4,5,6,7,8,9,10,11,12])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入若干数字的列表[-8,64,3.5,89]\n"
     ]
    }
   ],
   "source": [
    "data=eval(input('请输入若干数字的列表'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "绝对值最大的数字: 89\n"
     ]
    }
   ],
   "source": [
    "print('绝对值最大的数字:',max(data,key=abs))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-24"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ls = [-2,3,4]\n",
    "reduce(mul,ls)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[3, 1, 2, 5]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(map(len,map(str,{1, 888, 99, 23456})))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "from operator import mul\n",
    "from functools import reduce"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入第一个向量:[1,2,3]\n"
     ]
    }
   ],
   "source": [
    "vec1=eval(input('请输入第一个向量:'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入第二个向量:[4,5,6]\n"
     ]
    }
   ],
   "source": [
    "vec2=eval(input('请输入第二个向量:'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "内积: 32\n"
     ]
    }
   ],
   "source": [
    "print('内积:',sum(map(mul,vec1,vec2)))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
